package com.leetcode;

import java.util.Arrays;

/**
 * 350. 两个数组的交集 II
 * 排序 + 双指针
 *
 * @author fy
 * @date 2022/4/6 10:23
 */
public class Solution350 {

    public int[] intersect(int[] nums1, int[] nums2) {
        Arrays.sort(nums1);
        Arrays.sort(nums2);
        int idx1 = 0;
        int idx2 = 0;
        int idx = 0;
        int[] nums = new int[Math.max(nums1.length, nums2.length)];
        while (idx1 < nums1.length && idx2 < nums2.length) {
            if (nums1[idx1] == nums2[idx2]) {
                nums[idx++] = nums1[idx1];
                idx1++;
                idx2++;
            } else if (nums1[idx1] < nums2[idx2]) {
                idx1++;
            } else {
                idx2++;
            }
        }
        return Arrays.copyOfRange(nums, 0, idx);
    }

}
